//dep
window.TITT=new function(){var gen,varargs,ser,ef,_cp=1;var _f=_frm(arguments);return _f.clsr(function(){_s:while(1){switch(_cp){case 1:_cp=2;case 2:if((_f.v2=_f._new(

TITTProxyGenerator))===_S){break _s;}_cp=3;case 3:if((_f.v3=_f._new(BlockingProxyGenerator,[_f.v2]))===_S){break _s;}gen=_f.v3;_cp=4;case 4:if((_f.v4=_f._new(
TITTService))===_S){break _s;}ser=_f.v4;_cp=5;case 5:if((_f.v5=
IOFactory.createEncodingFacade())===_S){break _s;}ef=_f.v5;

this.createProxy=function(){var _f = _frm(arguments);var _cp=_f.scp;_s:while(1){switch(_cp){case 1:_cp=2;case 2:if((_f.v2=
varargs(this.createProxy.arguments,0))===_S){break _s;}var args=_f.v2;_cp=3;case 3:if((_f.v3=_f._new(
TITTInvoker,[args]))===_S){break _s;}_cp=4;case 4:if((_f.v4=_f._new(NuderInvoker,[args]))===_S){break _s;}_cp=5;case 5:if((_f.v5=_f._new(CombinedInvoker,[_f.v3,_f.v4]))===_S){break _s;}_cp=6;case 6:if((_f.v6=gen.generateProxy(_f.v5))===_S){break _s;}return _f.v6;return;case 0:args=_f[0];_cp=_f.cp;}}return _f.sus(args,_cp,this)};


this.register=function(o){var _f = _frm(arguments);var _cp=_f.scp;_s:while(1){switch(_cp){case 1:_cp=2;case 2:if((_f.v2=
TITTSyncing.sync(ser.register))===_S){break _s;}_cp=3;case 3:if((_f.v3=varargs(this.register.arguments,1))===_S){break _s;}_cp=4;case 4:if((_f.v4=_f.v2(o,_f.v3))===_S){break _s;}return;case 0:o=_f[0];_cp=_f.cp;}}return _f.sus(o,_cp,this)};


this.unregister=function(o,lazy){var _f = _frm(arguments);var _cp=_f.scp;_s:while(1){switch(_cp){case 1:
_cp=(!lazy)?2:3;break;case 2:_cp=5;case 5:if((_f.v5=
TITTSyncing.sync(ser.unregister))===_S){break _s;}_cp=6;case 6:if((_f.v6=_f.v5(o))===_S){break _s;}_cp=4;break;case 3:_cp=7;case 7:if((_f.v7=

TITTSyncing.sync(ser.lazyUnregister))===_S){break _s;}_cp=8;case 8:if((_f.v8=_f.v7(o))===_S){break _s;}_cp=4;break;case 4:return;case 0:o=_f[0];lazy=_f[1];_cp=_f.cp;}}return _f.sus(o,lazy,_cp,this)};


this.encodeURL=function(url){var _f = _frm(arguments);var _cp=_f.scp;_s:while(1){switch(_cp){case 1:_cp=2;case 2:if((_f.v2=
ef.encode(Types.STRING,url))===_S){break _s;}return _f.v2;return;case 0:url=_f[0];_cp=_f.cp;}}return _f.sus(url,_cp,this)};


this.decodeURL=function(url){var _f = _frm(arguments);var _cp=_f.scp;_s:while(1){switch(_cp){case 1:_cp=2;case 2:if((_f.v2=
ef.decode(Types.STRING,url))===_S){break _s;}return _f.v2;return;case 0:url=_f[0];_cp=_f.cp;}}return _f.sus(url,_cp,this)};


this.getService=function(){
return ser;};


varargs = function(args,from){var _f = _frm(arguments);var _cp=_f.scp;_s:while(1){switch(_cp){case 1:_cp=2;case 2:if((_f.v2=_f._new(
Array))===_S){break _s;}var arr=_f.v2;
for(var i=from;i<args.length;i++)
arr[i-from]=args[i];
return arr;return;case 0:arr=_f[0];i=_f[1];args=_f[2];from=_f[3];_cp=_f.cp;}}return _f.sus(arr,i,args,from,_cp,this)};return;}}return _f.sus(this)}).call(this)};

/*
window.TITT = new function() {

	var gen = new BlockingProxyGenerator(new TITTProxyGenerator())
	var ser = new TITTService();
	var ef = IOFactory.createEncodingFacade();
	
	this.createProxy = function() {
		var args = varargs(this.createProxy.arguments, 0);
		return gen.generateProxy(new CombinedInvoker(new TITTInvoker(args), new NuderInvoker(args)));	
	}
	
	this.register = function(o) {
		TITTSyncing.sync(ser.register)(o, varargs(this.register.arguments, 1));
	}
		
	this.unregister = function(o, lazy) {
		if(!lazy)
			TITTSyncing.sync(ser.unregister)(o);
		else
			TITTSyncing.sync(ser.lazyUnregister)(o);
	}	
	
	this.encodeURL = function(url) {
		return ef.encode(Types.STRING, url);
	} 
	
	this.decodeURL = function(url) {
		return ef.decode(Types.STRING, url);
	}
	
	this.getService = function() {
		return ser;
	}	
	
	function varargs(args, from) {
		var arr = new Array();
		for(var i = from; i < args.length; i++)
			arr[i-from] = args[i];
		return arr;
	}	

}
*/